My Programming Journey.


January 19, 20215 Mins Readby: osama khalil

In this article i will try to summarize my programming journey, the relatively ups and downs i've had, and the love/hate relationship i've with this field.

Pre-College

Alright, tbh me growing up i never got deep into programming or even thought about becoming a software engineer before entering college, i barely just knew some HTML tags and a little bit of CSS and was always afraid to know more than that ๐Ÿ˜‚ and it's really unfortunate because i discovered later that learning programming to do certain tasks isn't that complicated, at least the barrier isn't high to start and the bare minimum that you must know to write some code isn't complicated either. So i really see it now as a good investment to your time and your skills to anyone in general. Usually software engineers talk about how they were CRAZY about programming and how they always ADMIRED computers, terminal commands instead of GUIs, etc.. buuut unfortunately i wasn't that guy, i was just using computers like any other regular consumer, mostly gaming.๐ŸŽฎ

First Hello world;

Wrote my first hello world in late 2016 in C++, after my first year, i ended up loving programming but i made a BIG mistake๐Ÿ‘Ž back then i always wanted to create stuff and just keep doing that, and although having this attitude isn't bad at all but that meant not taking the required time to learn all the fundmentals right.

Jumping to Android

My love for giving the machine some commands to create cool stuff took over, but in a wrong way of execution. i started learning android development and the way of doing it was mostly just following some tutorials to do X or Y, and let's just examine why this way of learning is NOT recommended or best practice for any newbie dev:
1- As i've mentioned, not mastering the fundementals of programming will haunt you when you jump to any advanced technology or framework directly.
2- Relying heavily on tutorials without practicing can be useless in alot of cases and time wasting, this is known as Tutorial Purgatory you can read about it more in this awesome article โฌ‡

Tutorial Purgatory

So after a couple of months, i felt the need to change this behaviour in order to become a better dev.

Back to basics

I think this is the turning point in my career, without going back to deeply learn all the basics and the fundmentals and practicing some problem solving, i don't think i would've got my job or even progress as far as i'm today, so i started re-visiting topics and building more projects using concepts in OOP, data structres and practicing problem solving on web sites like:

CodeWars , CodeForces and Hackerrank ( lately LeetCode).
And the highlight for me in PS was winning the 3rd place in the local contest in our college and qualifing to the 2019 ECPC.

Web and javascript

In early 2019, i started learning JS and i really LOVE it, plus writing javascript means you can deliver to any platform writing the same language, that's powerful imo, i decided to become a web dev and started completing the FreeCodeCamp learning path for web development plus having MDN docs as my guide. โฌ‡

FreeCodeCamp path

MDN docs

React and beyond

Right now, I work as a front-end developer writing React.js everyday and i'm planning to learn Vue.js in the future as well as TypeScript but i can say that i'm happy with the state i'm in right now and i'm just getting started.